/*
 * Copyright (C) 2008-2019 TrinityCore <http://www.trinitycore.org/>
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 3 of the License, or (at your
 * option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef _CHARACTERDATABASE_H
#define _CHARACTERDATABASE_H

#include "DatabaseWorkerPool.h"
#include "MySQLConnection.h"

class CharacterDatabaseConnection : public MySQLConnection
{
    public:
        //- Constructors for sync and async connections
        CharacterDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) {}
        CharacterDatabaseConnection(ACE_Activation_Queue* q, MySQLConnectionInfo& connInfo) : MySQLConnection(q, connInfo) {}

        //- Loads database type specific prepared statements
        void DoPrepareStatements();
};

typedef DatabaseWorkerPool<CharacterDatabaseConnection> CharacterDatabaseWorkerPool;

enum CharacterDatabaseStatements
{
    /*  Naming standard for defines:
        {DB}_{SEL/INS/UPD/DEL/REP}_{Summary of data changed}
        When updating more than one field, consider looking at the calling function
        name for a suiting suffix.
    */

    // Account
    CHARACTER_SELECT_ACCOUNT_DATA,
    CHARACTER_REPLACE_ACCOUNT_DATA,
    CHARACTER_DELETE_ACCOUNT_DATA,
    CHARACTER_SELECT_CHARACTER_ACCOUNT_DATA,
    CHARACTER_REPLACE_PLAYER_ACCOUNT_DATA,
    CHARACTER_DELETE_PLAYER_ACCOUNT_DATA, 
    CHARACTER_SELECT_ACCOUNT_BY_NAME,
    CHARACTER_SELECT_ACCOUNT_BY_GUID,
    CHARACTER_DELETE_ACCOUNT_INSTANCE_LOCK_TIMES,
    CHARACTER_INSERT_ACCOUNT_INSTANCE_LOCK_TIMES,
    CHARACTER_UPDATE_ACCOUNT_ONLINE,
    CHARACTER_UPDATE_ADD_AT_LOGIN_FLAG,
    CHARACTER_UPDATE_REMOVE_AT_LOGIN_FLAG,
    CHARACTER_UPDATE_ALL_AT_LOGIN_FLAGS,
    CHARACTER_DELETE_DECLINED_NAME,

    // Misc
    CHARACTER_SELECT_CHARACTER_COUNT,
    CHARACTER_DELETE_QUEST_POOL_SAVE,
    CHARACTER_INSERT_QUEST_POOL_SAVE,
    CHARACTER_SELECT_GUID_BY_NAME,
    CHARACTER_SELECT_GUID_BY_NAME_FILTER,
    CHARACTER_SELECT_CHECK_NAME,
    CHARACTER_SELECT_CHECK_GUID,
    CHARACTER_SELECT_SUM_CHARS,
    CHARACTER_SELECT_CHARACTER_CREATE_INFO,
    CHARACTER_INSERT_BUG_REPORT,

    // Bans
    CHARACTER_INSERT_CHARACTER_BAN,
    CHARACTER_UPDATE_CHARACTER_BAN,
    CHARACTER_DELETE_EXPIRED_BANS,
    CHARACTER_SELECT_BAN_INFO,
    CHARACTER_SELECT_BAN_INFO_LIST,
    CHARACTER_SELECT_BANNED_NAME,
    CHARACTER_SELECT_ENUM,
    CHARACTER_SELECT_ENUM_DECLINED_NAME,
    CHARACTER_SELECT_FREE_NAME,
    CHARACTER_SELECT_GUID_RACE_ACC_BY_NAME,
    CHARACTER_SELECT_CHARACTER_RACE,
    CHARACTER_SELECT_CHARACTER_LEVEL,
    CHARACTER_SELECT_CHARACTER_ZONE,
    CHARACTER_SELECT_CHARACTER_NAME_DATA,
    CHARACTER_SELECT_CHARACTER_POSITION_XYZ,
    CHARACTER_SELECT_CHARACTER_POSITION,

    // Character loading
    CHARACTER_SELECT_CHARACTER,
    CHARACTER_SELECT_GROUP_MEMBER,
    CHARACTER_SELECT_CHARACTER_INSTANCE,
    CHARACTER_SELECT_CHARACTER_AURAS,
    CHARACTER_SELECT_CHARACTER_SPELL,
    CHARACTER_SELECT_CHARACTER_QUEST_STATUS,
    CHARACTER_SELECT_CHARACTER_DAILY_QUEST_STATUS,
    CHARACTER_SELECT_CHARACTER_WEEKLY_QUEST_STATUS,
    CHARACTER_SELECT_CHARACTER_SEASONAL_QUEST_STATUS,
    CHARACTER_INSERT_CHARACTER_DAILY_QUEST_STATUS,
    CHARACTER_INSERT_CHARACTER_WEEKLY_QUEST_STATUS,
    CHARACTER_INSERT_CHARACTER_SEASONAL_QUEST_STATUS,
    CHARACTER_SELECT_CHARACTER_REPUTATION,
    CHARACTER_SELECT_CHARACTER_INVENTORY,
    CHARACTER_SELECT_CHARACTER_ACTIONS,
    CHARACTER_SELECT_CHARACTER_ACTIONS_SPEC,
    CHARACTER_SELECT_CHARACTER_MAILCOUNT,
    CHARACTER_SELECT_CHARACTER_MAILDATE,
    CHARACTER_SELECT_MAIL_COUNT,    
    CHARACTER_SELECT_CHARACTER_SOCIAL_LIST,
    CHARACTER_SELECT_CHARACTER_HOME_BIND,
    CHARACTER_SELECT_CHARACTER_SPELL_COOLDOWNS,
    CHARACTER_SELECT_CHARACTER_DECLINED_NAMES,
    CHARACTER_SELECT_CHARACTER_GUILD,
    CHARACTER_SELECT_CHARACTER_ARENA_INFO,
    CHARACTER_SELECT_CHARACTER_ACHIEVEMENTS,
    CHARACTER_SELECT_CHARACTER_CRITERIA_PROGRESS,
    CHARACTER_SELECT_CHARACTER_EQUIPMENT_SETS,
    CHARACTER_SELECT_CHARACTER_BG_DATA,
    CHARACTER_SELECT_CHARACTER_GLYPHS,
    CHARACTER_SELECT_CHARACTER_TALENTS,
    CHARACTER_SELECT_CHARACTER_SKILLS,
    CHARACTER_SELECT_CHARACTER_RANDOM_BG,
    CHARACTER_SELECT_CHARACTER_BANNED,
    CHARACTER_SELECT_CHARACTER_QUEST_STATUS_REW,
    CHARACTER_SELECT_ACCOUNT_INSTANCE_LOCK_TIMES,
    CHARACTER_SELECT_MAIL_ITEMS,
    CHARACTER_SELECT_CHARACTER_NAME_CLASS,
    CHARACTER_SELECT_CHARACTER_NAME,   
    CHARACTER_SELECT_ACCOUNT_NAME_BY_GUID,    
    CHARACTER_DELETE_QUEST_STATUS_DAILY,
    CHARACTER_DELETE_QUEST_STATUS_WEEKLY,
    CHARACTER_DELETE_QUEST_STATUS_SEASONAL,
    CHARACTER_DELETE_QUEST_STATUS_DAILY_CHAR,
    CHARACTER_DELETE_QUEST_STATUS_WEEKLY_CHAR,
    CHARACTER_DELETE_QUEST_STATUS_SEASONAL_CHAR,
    CHARACTER_DELETE_BATTLEGROUND_RANDOM,
    CHARACTER_INSERT_BATTLEGROUND_RANDOM,
    CHARACTER_SELECT_GUILD_ID,

    // Auction
    CHARACTER_SELECT_AUCTION_ITEMS,
    CHARACTER_INSERT_AUCTION,
    CHARACTER_DELETE_AUCTION,
    CHARACTER_SELECT_AUCTION_BY_TIME,    
    CHARACTER_SELECT_AUCTIONS,
    CHARACTER_SELECT_EXPIRED_AUCTIONS,

    // Mails
    CHARACTER_INSERT_MAIL,
    CHARACTER_DELETE_MAIL,
    CHARACTER_INSERT_MAIL_ITEM,
    CHARACTER_DELETE_MAIL_ITEM,
    CHARACTER_DELETE_INVALID_MAIL_ITEM,
    CHARACTER_DELETE_EMPTY_EXPIRED_MAIL,
    CHARACTER_SELECT_EXPIRED_MAIL,
    CHARACTER_SELECT_EXPIRED_MAIL_ITEMS,
    CHARACTER_UPDATE_MAIL_RETURNED,
    CHARACTER_UPDATE_MAIL_ITEM_RECEIVER,

    // Items
    CHARACTER_UPDATE_ITEM_OWNER,
    CHARACTER_DELETE_NONEXISTENT_GUILD_BANK_ITEM,
    CHARACTER_SELECT_GUILD_BANK_ITEMS,
    CHARACTER_SELECT_ITEM_REFUNDS,
    CHARACTER_SELECT_ITEM_BOP_TRADE,
    CHARACTER_DELETE_ITEM_BOP_TRADE,
    CHARACTER_INSERT_ITEM_BOP_TRADE,
    CHARACTER_REPLACE_INVENTORY_ITEM,
    CHARACTER_DELETE_INVENTORY_ITEM,
    CHARACTER_REPLACE_ITEM_INSTANCE,
    CHARACTER_UPDATE_ITEM_INSTANCE,
    CHARACTER_UPDATE_ITEM_INSTANCE_ON_LOAD,
    CHARACTER_DELETE_ITEM_INSTANCE,
    CHARACTER_UPDATE_GIFT_OWNER,
    CHARACTER_DELETE_GIFT,
    CHARACTER_SELECT_CHARACTER_GIFT_BY_ITEM,
   
    // Guild handling
    CHARACTER_INSERT_GUILD,
    CHARACTER_DELETE_GUILD,
    CHARACTER_INSERT_GUILD_MEMBER,
    CHARACTER_DELETE_GUILD_MEMBER,
    CHARACTER_DELETE_GUILD_MEMBERS,
    CHARACTER_INSERT_GUILD_RANK,
    CHARACTER_DELETE_GUILD_RANKS,
    CHARACTER_DELETE_GUILD_LOWEST_RANK,
    CHARACTER_INSERT_GUILD_BANK_TAB,
    CHARACTER_DELETE_GUILD_BANK_TAB,
    CHARACTER_DELETE_GUILD_BANK_TABS,
    CHARACTER_INSERT_GUILD_BANK_ITEM,
    CHARACTER_DELETE_GUILD_BANK_ITEM,
    CHARACTER_DELETE_GUILD_BANK_ITEMS,
    CHARACTER_INSERT_GUILD_BANK_RIGHT_DEFAULT,
    CHARACTER_INSERT_GUILD_BANK_RIGHT,
    CHARACTER_DELETE_GUILD_BANK_RIGHT,
    CHARACTER_DELETE_GUILD_BANK_RIGHTS,
    CHARACTER_DELETE_GUILD_BANK_RIGHTS_FOR_RANK,
    CHARACTER_INSERT_GUILD_BANK_EVENT_LOG,
    CHARACTER_DELETE_GUILD_BANK_EVENT_LOG,
    CHARACTER_DELETE_GUILD_BANK_EVENT_LOGS,
    CHARACTER_INSERT_GUILD_EVENT_LOG,
    CHARACTER_DELETE_GUILD_EVENT_LOG,
    CHARACTER_DELETE_GUILD_EVENT_LOGS,
    CHARACTER_UPDATE_GUILD_MEMBER_PLAYER_NOTE,
    CHARACTER_UPDATE_GUILD_MEMBER_OFFICER_NOTE,
    CHARACTER_UPDATE_GUILD_MEMBER_RANK,
    CHARACTER_UPDATE_GUILD_MOTD,
    CHARACTER_UPDATE_GUILD_INFO,
    CHARACTER_UPDATE_GUILD_LEADER,
    CHARACTER_UPDATE_GUILD_RANK_NAME,
    CHARACTER_UPDATE_GUILD_RANK_RIGHTS,
    CHARACTER_UPDATE_GUILD_SAVE_XP,
    CHARACTER_INSERT_GUILD_NEWS,
    CHARACTER_UPDATE_GUILD_EMBLEM_INFO,
    CHARACTER_UPDATE_GUILD_BANK_TAB_INFO,
    CHARACTER_UPDATE_GUILD_BANK_MONEY,
    CHARACTER_UPDATE_GUILD_BANK_EVENT_LOG_TAB,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_MONEY,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_MONEY,
    CHARACTER_UPDATE_GUILD_RANK_BANK_RESET_TIME,
    CHARACTER_UPDATE_GUILD_RANK_BANK_MONEY,
    CHARACTER_UPDATE_GUILD_BANK_TAB_TEXT,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS0,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS1,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS2,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS3,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS4,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS5,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS6,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_TIME_REMOVE_SLOTS7,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS0,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS1,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS2,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS3,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS4,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS5,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS6,
    CHARACTER_UPDATE_GUILD_MEMBER_BANK_REMOVE_SLOTS7,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME0,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME1,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME2,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME3,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME4,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME5,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME6,
    CHARACTER_UPDATE_GUILD_RANK_BANK_TIME7,
    CHARACTER_SELECT_CHARACTER_DATA_FOR_GUILD,

    // Chat channel handling
    CHARACTER_SELECT_CHANNEL,
    CHARACTER_INSERT_CHANNEL,
    CHARACTER_UPDATE_CHANNEL,
    CHARACTER_UPDATE_CHANNEL_USAGE,
    CHARACTER_UPDATE_CHANNEL_OWNERSHIP,
    CHARACTER_DELETE_OLD_CHANNELS,

    // Equipment Sets
    CHARACTER_UPDATE_EQUIP_SET,
    CHARACTER_INSERT_EQUIP_SET,
    CHARACTER_DELETE_EQUIP_SET,

    // Auras
    CHARACTER_DELETE_AURA,
    CHARACTER_INSERT_AURA,

    // Currency
    CHARACTER_SELECT_CHARACTER_CURRENCY,
    CHARACTER_SELECT_CHARACTER_CP_WEEK_CAP, // conquest points
    CHARACTER_SELECT_CP_VAL,

    // Tutorials
    CHARACTER_SELECT_TUTORIALS,
    CHARACTER_SELECT_HAS_TUTORIALS,
    CHARACTER_INSERT_TUTORIALS,
    CHARACTER_UPDATE_TUTORIALS,
    CHARACTER_DELETE_TUTORIALS,

    // Instance Saves
    CHARACTER_INSERT_INSTANCE_SAVE,
    CHARACTER_UPDATE_INSTANCE_DATA,

    // Game Events
    CHARACTER_DELETE_GAME_EVENT_SAVE,
    CHARACTER_INSERT_GAME_EVENT_SAVE,
    CHARACTER_DELETE_ALL_GAME_EVENT_CONDITION_SAVE,
    CHARACTER_DELETE_GAME_EVENT_CONDITION_SAVE,
    CHARACTER_INSERT_GAME_EVENT_CONDITION_SAVE,

    // Petitions
    CHARACTER_SELECT_PETITION,
    CHARACTER_SELECT_PETITION_SIGNATURE,
    CHARACTER_DELETE_ALL_PETITION_SIGNATURES,
    CHARACTER_DELETE_PETITION_SIGNATURE,
    CHARACTER_UPDATE_PETITION_NAME,
    CHARACTER_INSERT_PETITION_SIGNATURE,
    CHARACTER_SELECT_PETITION_BY_OWNER,
    CHARACTER_SELECT_PETITION_TYPE,
    CHARACTER_SELECT_PETITION_SIGNATURES,
    CHARACTER_SELECT_PETITION_SIG_BY_ACCOUNT,
    CHARACTER_SELECT_PETITION_OWNER_BY_GUID,
    CHARACTER_SELECT_PETITION_SIG_BY_GUID,
    CHARACTER_SELECT_PETITION_SIG_BY_GUID_TYPE,
    
    // Arena Teams
    CHARACTER_INSERT_ARENA_TEAM,
    CHARACTER_DELETE_ARENA_TEAM,
    CHARACTER_DELETE_ARENA_TEAM_MEMBERS,
    CHARACTER_UPDATE_ARENA_TEAM_CAPTAIN,
    CHARACTER_DELETE_ARENA_TEAM_MEMBER,
    CHARACTER_UPDATE_ARENA_TEAM_STATS,
    CHARACTER_INSERT_ARENA_TEAM_MEMBER,
    CHARACTER_UPDATE_ARENA_TEAM_MEMBER,
    CHARACTER_REPLACE_CHARACTER_ARENA_STATS,
    CHARACTER_SELECT_CHARACTER_ARENA_TEAMS,
    CHARACTER_SELECT_MATCH_MAKER_RATING,

    // Character battleground data
    CHARACTER_INSERT_PLAYER_BGDATA,
    CHARACTER_DELETE_PLAYER_BGDATA,

    // Homebind
    CHARACTER_INSERT_PLAYER_HOMEBIND,
    CHARACTER_UPDATE_PLAYER_HOMEBIND,
    CHARACTER_DELETE_PLAYER_HOMEBIND,

    // Corpse
    CHARACTER_SELECT_CORPSES,
    CHARACTER_INSERT_CORPSE,
    CHARACTER_DELETE_CORPSE,
    CHARACTER_DELETE_PLAYER_CORPSES,
    CHARACTER_DELETE_OLD_CORPSES,

    // Creature respawn
    CHARACTER_SELECT_CREATURE_RESPAWNS,
    CHARACTER_REPLACE_CREATURE_RESPAWNS,
    CHARACTER_DELETE_CREATURE_RESPAWNS,
    CHARACTER_DELETE_CREATURE_RESPAWN_BY_GUID,
    CHARACTER_DELETE_CREATURE_RESPAWN_BY_INSTANCE,
    CHARACTER_SELECT_MAX_CREATURE_RESPAWNS,

    // Gameobject respawn
    CHARACTER_SELECT_GO_RESPAWNS,
    CHARACTER_REPLACE_GO_RESPAWNS,
    CHARACTER_DELETE_GO_RESPAWNS,
    CHARACTER_DELETE_GO_RESPAWNS_BY_INSTANCE,

    // GM tickets
    CHARACTER_SELECT_GM_TICKETS,
    CHARACTER_REPLACE_GM_TICKETS,
    CHARACTER_DELETE_ALL_GM_TICKETS,
    CHARACTER_DELETE_GM_TICKETS,
    CHARACTER_DELETE_PLAYER_GM_TICKETS,

    // GM survey
    CHARACTER_INSERT_GM_SURVEY,
    CHARACTER_INSERT_GM_SUBSURVEY,
    CHARACTER_INSERT_LAG_REPORT,

    // Pet
    CHARACTER_SELECT_PET_SLOTS,
    CHARACTER_SELECT_PET_SLOTS_DETAIL,
    CHARACTER_SELECT_PET_ENTRY,
    CHARACTER_SELECT_PET_SLOT_BY_ID,

    CHARACTER_INSERT_CHARACTER,
    CHARACTER_UPDATE_CHARACTER,

    CHARACTER_INSERT_GROUP,
    CHARACTER_INSERT_GROUP_MEMBER,
    CHARACTER_DELETE_GROUP_MEMBER,
    CHARACTER_DELETE_GROUP_INSTANCE_PERM_BINDING,
    CHARACTER_UPDATE_GROUP_LEADER,
    CHARACTER_UPDATE_GROUP_TYPE,
    CHARACTER_UPDATE_GROUP_MEMBER_SUBGROUP,
    CHARACTER_UPDATE_GROUP_MEMBER_FLAG,
    CHARACTER_UPDATE_GROUP_DIFFICULTY,
    CHARACTER_UPDATE_GROUP_RAID_DIFFICULTY,
    CHARACTER_DELETE_INVALID_SPELL,
    CHARACTER_UPDATE_DELETE_INFO,
    CHARACTER_UPDATE_RESTORE_DELETE_INFO,
    CHARACTER_UPDATE_ZONE,
    CHARACTER_UPDATE_LEVEL,
    CHARACTER_DELETE_INVALID_ACHIEV_PROGRESS_CRITERIA,
    CHARACTER_DELETE_INVALID_ACHIEVMENT,
    CHARACTER_INSERT_ADDON,
    CHARACTER_DELETE_INVALID_PET_SPELL,
    CHARACTER_DELETE_GROUP_INSTANCE_BY_INSTANCE,
    CHARACTER_DELETE_GROUP_INSTANCE_BY_GUID,
    CHARACTER_REPLACE_GROUP_INSTANCE,
    CHARACTER_UPDATE_INSTANCE_RESETTIME,
    CHARACTER_UPDATE_GLOBAL_INSTANCE_RESETTIME,
    CHARACTER_UPDATE_CHARACTER_ONLINE,
    CHARACTER_UPDATE_CHARACTER_NAME_AT_LOGIN,
    CHARACTER_UPDATE_WORLDSTATE,
    CHARACTER_INSERT_WORLDSTATE,
    CHARACTER_DELETE_CHARACTER_INSTANCE,
    CHARACTER_UPDATE_CHARACTER_INSTANCE,
    CHARACTER_INSERT_CHARACTER_INSTANCE,
    CHARACTER_UPDATE_GENDER_PLAYERBYTES,
    CHARACTER_DELETE_CHARACTER_SKILL,
    CHARACTER_UPDATE_ADD_CHARACTER_SOCIAL_FLAGS,
    CHARACTER_UPDATE_REMOVE_CHARACTER_SOCIAL_FLAGS,
    CHARACTER_INSERT_CHARACTER_SOCIAL,
    CHARACTER_DELETE_CHARACTER_SOCIAL,
    CHARACTER_UPDATE_CHARACTER_SOCIAL_NOTE,
    CHARACTER_UPDATE_CHARACTER_POSITION,

    CHARACTER_INSERT_LFG_DATA,
    CHARACTER_DELETE_LFG_DATA,

    CHARACTER_SELECT_CHARACTER_AURA_FROZEN,
    CHARACTER_SELECT_CHARACTER_ONLINE,

    CHARACTER_SELECT_CHARACTER_DELETE_INFO_BY_GUID,
    CHARACTER_SELECT_CHARACTER_DELETE_INFO_BY_NAME,
    CHARACTER_SELECT_CHARACTER_DELETE_INFO,

    CHARACTER_SELECT_CHARS_BY_ACCOUNT_ID,
    CHARACTER_SELECT_CHARACTER_PINFO,
    CHARACTER_SELECT_PINFO_BANS,
    CHARACTER_SELECT_CHARACTER_HOMEBIND,
    CHARACTER_SELECT_CHARACTER_GUID_NAME_BY_ACC,
    CHARACTER_SELECT_POOL_QUEST_SAVE,
    CHARACTER_SELECT_CHARACTER_AT_LOGIN,
    CHARACTER_SELECT_CHARACTER_CLASS_LVL_AT_LOGIN,
    CHARACTER_SELECT_INSTANCE,
    CHARACTER_SELECT_CHARACTER_COD_ITEM_MAIL,
    CHARACTER_SELECT_CHARACTER_SOCIAL,
    CHARACTER_SELECT_CHARACTER_OLD_CHARS,
    CHARACTER_SELECT_ARENA_TEAM_ID_BY_PLAYER_GUID,
    CHARACTER_SELECT_MAIL,
    CHARACTER_SELECT_CHARACTER_PLAYERBYTES2,
    CHARACTER_SELECT_CHARACTER_GUID_BY_NAME,
    CHARACTER_DELETE_CHARACTER_AURA_FROZEN,
    CHARACTER_SELECT_CHARACTER_INVENTORY_COUNT_ITEM,
    CHARACTER_SELECT_MAIL_COUNT_ITEM,
    CHARACTER_SELECT_AUCTIONHOUSE_COUNT_ITEM,
    CHARACTER_SELECT_GUILD_BANK_COUNT_ITEM,
    CHARACTER_SELECT_CHARACTER_INVENTORY_ITEM_BY_ENTRY,
    CHARACTER_SELECT_MAIL_ITEMS_BY_ENTRY,
    CHARACTER_SELECT_AUCTIONHOUSE_ITEM_BY_ENTRY,
    CHARACTER_SELECT_GUILD_BANK_ITEM_BY_ENTRY,
    
    MAX_CHARACTER_DATABASE_STATEMENTS,
};

#endif
